#ifndef __BH1750_H__
#define __BH1750_H__

#include "bflb_i2c.h"
#include "bflb_gpio.h"
#include "bflb_mtimer.h"

#define  BH1750_ADDR                      1          /* BH1750的ADDR引脚电平逻辑值 */
#define  BH1750_TEST_MODE                 BH1750_TEST_MODE_CON_H_CMD   /* BH1750测试模式选择 */   

#define BH1750_ADDR_L                     0x23       /* BH1750芯片IIC地址（ADDR为低电平） */
#define BH1750_ADDR_H                     0x5C       /* BH1750芯片IIC地址（ADDR为高电平） */

#define BH1750_POWAER_OFF_CMD             0x0       /* BH1750断电指令 */
#define BH1750_POWAER_ON_CMD              0x1       /* BH1750通电指令 */
#define BH1750_RESET_CMD                  0x7       /* BH1750重置指令 */

#define BH1750_TEST_MODE_CON_H_CMD        0x10      /* BH1750连续H模式测试指令 */
#define BH1750_TEST_MODE_CON_H_2_CMD      0x11      /* BH1750连续H2模式测试指令 */
#define BH1750_TEST_MODE_CON_L_CMD        0x13      /* BH1750连续L模式测试指令 */
#define BH1750_TEST_MODE_ONCE_H_CMD       0x20      /* BH1750一次H模式测试指令 */
#define BH1750_TEST_MODE_ONCE_H_2_CMD     0x21      /* BH1750连续H2模式测试指令 */
#define BH1750_TEST_MODE_ONCE_L_CMD       0x23      /* BH1750连续L模式测试指令 */

#define BH1750_TEST_DELAY_180MS           180       /* BH1750等待测试完成延时时间 */
#define BH1750_TEST_DELAY_24MS            24        /* BH1750等待测试完成延时时间 */
 
/* 芯片供电状态 */
typedef enum
{
	BH1750_POWER_STA_OFF = 0,   /* 芯片断电 */
	BH1750_POWER_STA_ON,       /* 芯片供电 */
	BH1750_POWER_STA_LAST,
}BH1750PowerSta; 


/* 温湿度数据读取结果 */
typedef enum
{
	BH1750_READ_ERR = 0,   /* 读取失败 */
	BH1750_READ_OK,        /* 读取成功 */
	BH1750_READ_LAST,
}BH1750ReadRes;


void BH1750_Init(); 
BH1750ReadRes BH1750_ReadLightIntensity(float *_LuxVal);  
//BH1750ReadRes BH1750_TestModePoll(float *_LuxVal);
#endif
